EN FR
EN FR
Application Domains
Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Bibliography
Application Domains
Software and Platforms
New Results
Bilateral Contracts and Grants with Industry
Bibliography


Section: Software and Platforms

Kermeta

Participants : Didier Vojtisek [correspondant] , Olivier Barais, Arnaud Blouin, Benoit Combemale, Fabien Coulon, Thomas Degueule, François Fouquet, David Mendez Acuna, Clément Guy, Jean-Marc Jézéquel.

Nowadays, object-oriented meta-languages such as MOF (Meta-Object Facility) are increasingly used to specify domain-specific languages in the model-driven engineering community. However, these meta-languages focus on structural specifications and have no built-in support for specifications of operational semantics. Integrated with the industrial standard Ecore and aligned with the OMG standard EMOF 2.0, the Kermeta language consists in a extension to these meta languages to support behavior definition. The language adds precise action specifications with static type checking and genericity at the meta level. Based on object-orientation and aspect orientation concepts, the Kermeta language adds model specific concepts.

It is used in several use cases:

  • to give a precise semantic of the behavior of a metamodel which then can be simulated.

  • to act as a model transformation language.

  • to act as a constraint language.

The development environment built for the Kermeta language provides an integrated workbench based on Eclipse. It offers services such as : model execution, text editor (with syntax highlighting, code autocompletion), additional views and various import/export transformations.

Thanks to Kermeta it is possible to build various frameworks dedicated to domain specific metamodels. Those frameworks are organised into MDKs (Model Development Kits). For example, Triskell proposes MDKs to work with metamodels such as Java5, UML2, RDL (requirements), Ecore, Traceability,...

After a first refactoring of Kermeta in 2011 to ease the integration of EMF and to focus on a fully compiled mode, we did a new refactoring of Kermeta in 2013 to leverage on xTend. The Kermeta action language is now defined as an extension of xTend proposing model-specific features (e.g., model type, containment, opposite) and an open class mechanism for aspect weaving. The main objective of this new refactoring was to benefit from the model-non-specific features of xTend (including the basics of the action language and its respective tooling such as editor, type checker and compiler), and to focus in our development on the innovative solutions for MDE.

Especially, in addition to an xTend extension dedicated to model manipulation, we started to integrate in Kermeta various facilities to support a software language engineering (slicing, pruning, reuse, variability management...).

Moreover, while this version of Kermeta is a DSML development workbench that provide good support for developing independent DSMLs, little or no support is provided for integrated use of multiple DSMLs. The lack of support for explicitly relating concepts expressed in different DSMLs makes it very difficult for developers to reason about information spread across models describing different system aspects.

See also the web page http://www.kermeta.org .

  • APP: IDDN.FR.001.420009.000.S.P.2005.000.10400

  • Version: 2.0.1

  • Programming language: Java, Scala, Kermeta

Main competitors:

  • XMF-Mosaic is developed by Ceteva and is now open-source since 2008.

  • GME is a large scale Meta-Modeling Environment developed at Vanderbilt University (ISIS project) since 2002.

  • MOFLON is a Metamodeling Framework with Graph Transformations, developed by A. Schuerr's group (TU-Darmstadt) since 2008.

  • XCore is a recent (2011) Eclipse project supported by Itemis/Macro Modelling that provides a single operational surface syntax for Ecore.

  • Many QVT inspired model transformation tools focused on model transformations.

Main innovative features:

Kermeta was one of the first solutions to offer an operational semantics on top of EMOF. It still proposes several unique features that cannot be found in the tools presented above, such as:

  • aspect weaving at the metamodel level allows fast prototyping of a wide variety of tools;

  • model typing allows a safe model polymorphism (e.g., reuse of algorithms and transformations accross diffrent metamodels), as well as language inheritance, evolution and interoperability.

Impact:

Kermeta is already quite well used by the community as a research platform for trying MDE ideas both in the academic community and in corporate R&D. Many softwares tools are built on top of Kermeta either within the Triskell team, within other Inria teams or in other companies and research institutes:

  • The following tools have been built within the Triskell team : K-CVL (implementation of the OMG CVL standard), Kompren (model slicing tool), Malai, Pramana. Kermeta is also used in all the collaborative projects Triskell is involved with, and is the catalyst of many collaborations in industrial contracts.

  • The following tools have been built using Kermeta (or use some transformations written in Kermeta) in other Inria teams:

    • Gecos (CAIRN): C compiler infrastructure following the Model Driven Engineering. It leverages the Eclipse Modeling Framework and uses Eclipse as an underlying infrastructure. Consequently, the grammar of the source languages and the intermediate representations become metamodels, and the compilation passes become model transformations.

    • Timesquare (AOSTE) is a language based on the formal Clock Constraint Specification Language (CCSL), which allows the manipulation of logical time.

    • Polychrony (ESPRESSO) is a toolset for a polychronous data-flow language (Signal)

  • The following tools have been built using Kermeta outside of Inria:

    • Modhel'x (Supelec) is a framework for simulating multi-formalism models.

    • RAM (Mc Gill University) Reusable Aspect Models is an aspect-oriented multi-view modeling approach that integrates class diagram, sequence diagram and state diagram AOM techniques.

Since 2008, we invested a large effort to transfer these concepts in industry and the standardization bodies. Especially, we have initiated some collaborations with the Eclipse Foundation and OMG to include some Kermeta concepts (model typing, static introduction, ECORE/OCL/Kermeta composition, etc.) in the MXF project proposal (cf. http://www.eclipse.org/proposals/mxf ) of the Eclipse Modeling Project.

According to google scholar (http://scholar.google.fr/scholar?q=kermeta+model ), the Kermeta platform was used or cited in more than 800 papers. It has been downloaded about 1000 times per year since 2006(according to the unique visitors count on the Kermeta update site. Cf. http://kermeta.org/awstats.pl?month=all&year=2010&output=main&config=kermeta.org ).